package com.etime.yqtsponsor.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.etime.yqtsponsor.dto.VoteRegisterDto;
import com.etime.yqtsponsor.dto.VoteRegisterDtos;
import com.etime.yqtsponsor.pojo.VoteRegister;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 *
 * @author: LouisLew
 * @date: 2022/07/19/16:56
 * @description: 参与活动用户的service层接口
 */
public interface VoteRegisterService {
    /**
     * 分页查询参与活动选手
     * @param voteRegister
     * @param pageNum
     * @param pageSize
     * @return Page<VoteRegisterDto>
     */
    Page<VoteRegisterDto> selectRegisterByPage(VoteRegister voteRegister, Long pageNum, Long pageSize);

    /**
     * 删除参与活动选手
     * @param registerId
     * @return
     */
    int deleteRegister(Integer registerId);

    /**
     * 根据id查询一个参与选手
     * @param registerId
     * @return
     */
    VoteRegister selectById(Integer registerId);

    /**
     * 查询一个用户在此活动中报名的活动组数量
     * @param activeId
     * @param userId
     * @return
     */
    int countOneUserVoteInActive(Integer activeId, Integer userId);

    /**
     * 根据主键修改报名选手信息
     * @param voteRegister
     * @return
     */
    int updateVoteRegister(VoteRegister voteRegister);

    /**
     * 列表查询报名活动选手(未关联group表)
     * @param voteRegister
     * @return
     */
    List<VoteRegisterDto> selectVoteRegister(VoteRegister voteRegister);

    /**
     * 列表查询参与问卷或表单用户
     * @param voteRegister
     * @return
     */
    List<VoteRegisterDtos> selectSurveyFormRegister(VoteRegister voteRegister);

    /**
     * 列表查询报名活动选手(未关联user表)
     * @param activeId
     * @return
     */
    List<VoteRegisterDto> selectExportVote(Integer activeId);

    /**
     * 列表查询参与问卷或表单用户（activeId匹配）
     * @param activeId
     * @return
     */
    List<VoteRegisterDtos> selectExportForm(Integer activeId);
}
